package service.impl;

import dao.VoucherDao;
import dao.impl.VoucherDaoImpl;
import entry.Voucher;
import pojo.VoucherAndTwoEnterpriseAndInstituty;
import pojo.VoucherCondition;
import service.VoucherService;
import util.PageHelper;

import java.util.ArrayList;

public class VoucherServiceImpl implements VoucherService {
    VoucherDao voucherDao = new VoucherDaoImpl();

    /**
     * insertVoucher 如果融资金额不等于凭证信息，新增屏证信息
     *
     * @param voucher 要新增的凭证信息
     * @return boolean 返回新增成功与否
     * @author 谈克思
     */
    @Override
    public boolean insertVoucher(Voucher voucher) {
        return voucherDao.insertVoucher(voucher);
    }

    /**
     * updateVoucher 更改凭证信息中id对应的凭证的金融机构id
     *
     * @param voucher 凭证中id属性用于定位一条凭证信息，instituty_id属性为金融机构id要更改为的值
     * @return boolean 返回更改成功与否
     * @author 谈克思
     */
    @Override
    public boolean updateVoucher(Voucher voucher) {
        return voucherDao.updateVoucher(voucher);
    }

    /**
     * selectVoucherCount 查询凭证信息个数
     *
     * @param voucherCondition 查询条件
     * @return int 返回有凭证信息和收单开单双方企业信息和金融机构信息的VoucherAndTwoEnterpriseAndInstituty对象集合的元素个数
     * @author 金静远
     */
    @Override
    public int selectVoucherCount(VoucherCondition voucherCondition) {
        return voucherDao.selectVoucherCount(voucherCondition);
    }

    /**
     * selectVoucherList 查询凭证列表
     *
     * @param voucherCondition 查询条件
     * @return ArrayList<VoucherAndTwoEnterpriseAndInstituty> 返回有凭证信息和收单开单双方企业信息和金融机构信息的VoucherAndTwoEnterpriseAndInstituty对象集合
     * @author 闫东杰
     */
    @Override
    public ArrayList<VoucherAndTwoEnterpriseAndInstituty> selectVoucherList(VoucherCondition voucherCondition, PageHelper pageHelper) {
        return voucherDao.selectVoucherList(voucherCondition, pageHelper);
    }

    /**
     * selectVoucherDetail 根据id查找融资详情信息
     *
     * @param id Voucher凭证的id
     * @return VoucherAndTwoEnterpriseAndInstituty 返回有凭证信息和收单开单双方企业信息和金融机构信息的VoucherAndTwoEnterpriseAndInstituty对象
     * @author 闫东杰
     */
    @Override
    public VoucherAndTwoEnterpriseAndInstituty selectVoucherDetail(int id) {
        return voucherDao.selectVoucherDetail(id);
    }
}
